@echo off
REM 一键更新 requirements.txt 中的包版本到最新版本
REM 使用方法：
REM   update_requirements.bat                    - 直接更新（使用官方源）
REM   update_requirements.bat preview            - 预览更新（不实际修改）
REM   update_requirements.bat official          - 使用官方源更新
REM   update_requirements.bat aliyun            - 使用阿里云源更新
REM   update_requirements.bat douban            - 使用豆瓣源更新
REM   update_requirements.bat ustc              - 使用中科大源更新

echo ========================================
echo 🚀 Requirements 版本更新工具
echo ========================================

REM 检查是否在虚拟环境中
if not defined VIRTUAL_ENV (
    echo ⚠️  警告: 当前不在虚拟环境中
    echo 建议先激活虚拟环境: venv\Scripts\activate
    echo.
    set /p CONTINUE="是否继续? (y/N): "
    if /i not "!CONTINUE!"=="y" (
        echo 操作已取消
        pause
        exit /b 1
    )
)

REM 检查参数
set DRY_RUN=
set SOURCE=official
set PIP_INDEX=https://pypi.org/simple

if "%1"=="preview" set DRY_RUN=--dry-run
if "%1"=="dry-run" set DRY_RUN=--dry-run

REM 设置不同的源
if "%1"=="official" (
    set SOURCE=official
    set PIP_INDEX=https://pypi.org/simple
)
if "%1"=="tsinghua" (
    set SOURCE=tsinghua
    set PIP_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
)
if "%1"=="aliyun" (
    set SOURCE=aliyun
    set PIP_INDEX=https://mirrors.aliyun.com/pypi/simple
)
if "%1"=="douban" (
    set SOURCE=douban
    set PIP_INDEX=https://pypi.douban.com/simple
)
if "%1"=="ustc" (
    set SOURCE=ustc
    set PIP_INDEX=https://pypi.mirrors.ustc.edu.cn/simple
)

REM 切换到脚本所在目录
cd /d "%~dp0"

REM 检查 Python 是否可用
python --version >nul 2>&1
if errorlevel 1 (
    echo ❌ Python 未找到，请确保 Python 已安装并在 PATH 中
    pause
    exit /b 1
)

REM 检查 requests 模块是否可用
python -c "import requests" >nul 2>&1
if errorlevel 1 (
    echo 📦 安装必要的依赖...
    pip install -i %PIP_INDEX% requests
    if errorlevel 1 (
        echo ❌ 安装 requests 失败
        pause
        exit /b 1
    )
)

REM 运行更新脚本
echo.
if defined DRY_RUN (
    echo 🔍 预览模式 - 只显示将要更新的版本
    python scripts/update_requirements.py %DRY_RUN% --file requirements.txt --source %SOURCE%
) else (
    echo 📝 正在更新 requirements.txt...
    python scripts/update_requirements.py --file requirements.txt --source %SOURCE%
    
    if not errorlevel 1 (
        echo.
        echo 🎉 更新完成！
        echo.
        set /p INSTALL="是否立即重新安装依赖? (y/N): "
        if /i "!INSTALL!"=="y" (
            echo 📦 重新安装依赖...
            pip install -i %PIP_INDEX% -r requirements.txt --upgrade
        )
    )
)

echo.
pause 